/**
 * Copyright (c) 2013-Now http://jeesite.com All rights reserved.
 */
package com.jeesite.modules.base.entity.investorfinancialinfo;

import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 资方金融费率维护Entity
 * @author LV
 * @version 2021-03-03
 */
@Table(name="t_pad_tax_interest", alias="a", columns={
		@Column(name="pad_tax_interest_id", attrName="padTaxInterestId", label="垫税利息ID", isPK=true),
		@Column(name="group_name", attrName="groupName", label="组合名称", queryType=QueryType.LIKE),
		@Column(name="financing_method", attrName="financingMethod", label="融资方式"),
		@Column(name="pad_tax_interest_type", attrName="padTaxInterestType", label="类型", comment="类型（1关税保证保函 2现金保函 3舶来车 4国内融资信息）"),
		@Column(name="start_days", attrName="startDays", label="开始天数"),
		@Column(name="end_days", attrName="endDays", label="结束天数"),
        @Column(name="stage", attrName="stage", label="阶段"),
		@Column(name="stage_type", attrName="stageType", label="阶段类型（1资方阶段 2客户阶段）"),
		@Column(name="investor_margin_ratio", attrName="investorMarginRatio", label="资方保证金比例"),
		@Column(name="investor_interest_amount", attrName="investorInterestAmount", label="资方利息金额"),
		@Column(name="investor_interest_ratio", attrName="investorInterestRatio", label="资方利息比例"),
		@Column(name="customer_margin_ratio", attrName="customerMarginRatio", label="客户保证金比例"),
		@Column(name="customer_interest_amount", attrName="customerInterestAmount", label="客户利息金额"),
		@Column(name="customer_interest_ratio", attrName="customerInterestRatio", label="客户利息比例"),
		@Column(name="investor_financial_info_id", attrName="investorFinancialInfoId.investorFinancialInfoId", label="资方金融信息ID"),
	}, orderBy="a.pad_tax_interest_id ASC"
)
public class PadTaxInterest extends DataEntity<PadTaxInterest> {

	private static final long serialVersionUID = 1L;
	private String padTaxInterestId;		// 垫税利息ID
    private String stageType;		// 阶段类型（1资方阶段 2客户阶段）
	private String groupName;		// 组合名称
	private String financingMethod;		// 融资方式
	private String padTaxInterestType;		// 垫税方式（1关税保证保函 2现金保函 3舶来车 4国内融资信息）
	private Long startDays;		// 开始天数
	private Long endDays;		// 结束天数
	private Integer stage;		// 阶段
	private String investorMarginRatio;		// 资方保证金比例
	private Double investorInterestAmount;		// 资方利息金额
	private String investorInterestRatio;		// 资方利息比例
	private String customerMarginRatio;		// 客户保证金比例
	private Double customerInterestAmount;		// 客户利息金额
	private String customerInterestRatio;		// 客户利息比例
	private InvestorFinancialInfo investorFinancialInfoId;		// 资方金融信息ID 父类
	private String containFlag;

	public PadTaxInterest() {
		this(null);
	}


	public PadTaxInterest(InvestorFinancialInfo investorFinancialInfoId){
		this.investorFinancialInfoId = investorFinancialInfoId;
	}

	public String getPadTaxInterestId() {
		return padTaxInterestId;
	}

	public void setPadTaxInterestId(String padTaxInterestId) {
		this.padTaxInterestId = padTaxInterestId;
	}

	@NotBlank(message="组合名称不能为空")
	@Length(min=0, max=100, message="组合名称长度不能超过 100 个字符")
	public String getGroupName() {
		return groupName;
	}

	public void setGroupName(String groupName) {
		this.groupName = groupName;
	}

	@NotBlank(message="融资方式不能为空")
	@Length(min=0, max=100, message="融资方式长度不能超过 100 个字符")
	public String getFinancingMethod() {
		return financingMethod;
	}

	public void setFinancingMethod(String financingMethod) {
		this.financingMethod = financingMethod;
	}

	public String getPadTaxInterestType() {
		return padTaxInterestType;
	}

	public void setPadTaxInterestType(String padTaxInterestType) {
		this.padTaxInterestType = padTaxInterestType;
	}

	@NotNull(message="开始天数不能为空")
	public Long getStartDays() {
		return startDays;
	}

	public void setStartDays(Long startDays) {
		this.startDays = startDays;
	}

	@NotNull(message="结束天数不能为空")
	public Long getEndDays() {
		return endDays;
	}

	public void setEndDays(Long endDays) {
		this.endDays = endDays;
	}

	@NotBlank(message="资方保证金比例不能为空")
	@Length(min=0, max=10, message="资方保证金比例长度不能超过 10 个字符")
	public String getInvestorMarginRatio() {
		return investorMarginRatio;
	}

	public void setInvestorMarginRatio(String investorMarginRatio) {
		this.investorMarginRatio = investorMarginRatio;
	}

	@NotNull(message="资方利息金额不能为空")
	public Double getInvestorInterestAmount() {
		return investorInterestAmount;
	}

	public void setInvestorInterestAmount(Double investorInterestAmount) {
		this.investorInterestAmount = investorInterestAmount;
	}

	@NotBlank(message="资方利息比例不能为空")
	@Length(min=0, max=10, message="资方利息比例长度不能超过 10 个字符")
	public String getInvestorInterestRatio() {
		return investorInterestRatio;
	}

	public void setInvestorInterestRatio(String investorInterestRatio) {
		this.investorInterestRatio = investorInterestRatio;
	}

	@NotBlank(message="客户保证金比例不能为空")
	@Length(min=0, max=10, message="客户保证金比例长度不能超过 10 个字符")
	public String getCustomerMarginRatio() {
		return customerMarginRatio;
	}

	public void setCustomerMarginRatio(String customerMarginRatio) {
		this.customerMarginRatio = customerMarginRatio;
	}

	@NotNull(message="客户利息金额不能为空")
	public Double getCustomerInterestAmount() {
		return customerInterestAmount;
	}

	public void setCustomerInterestAmount(Double customerInterestAmount) {
		this.customerInterestAmount = customerInterestAmount;
	}

	@NotBlank(message="客户利息比例不能为空")
	@Length(min=0, max=10, message="客户利息比例长度不能超过 10 个字符")
	public String getCustomerInterestRatio() {
		return customerInterestRatio;
	}

	public void setCustomerInterestRatio(String customerInterestRatio) {
		this.customerInterestRatio = customerInterestRatio;
	}

	public InvestorFinancialInfo getInvestorFinancialInfoId() {
		return investorFinancialInfoId;
	}

	public void setInvestorFinancialInfoId(InvestorFinancialInfo investorFinancialInfoId) {
		this.investorFinancialInfoId = investorFinancialInfoId;
	}

	@Override
	public String toString() {
		return "PadTaxInterest{" +
				"padTaxInterestId='" + padTaxInterestId + '\'' +
				", groupName='" + groupName + '\'' +
				", financingMethod='" + financingMethod + '\'' +
				", padTaxInterestType='" + padTaxInterestType + '\'' +
				", startDays=" + startDays +
				", endDays=" + endDays +
				", investorMarginRatio='" + investorMarginRatio + '\'' +
				", investorInterestAmount=" + investorInterestAmount +
				", investorInterestRatio='" + investorInterestRatio + '\'' +
				", customerMarginRatio='" + customerMarginRatio + '\'' +
				", customerInterestAmount=" + customerInterestAmount +
				", customerInterestRatio='" + customerInterestRatio + '\'' +
				", investorFinancialInfoId=" + investorFinancialInfoId +
				'}';
	}

    public String getStageType() {
        return stageType;
    }

    public void setStageType(String stageType) {
        this.stageType = stageType;
    }

    public Integer getStage() {
        return stage;
    }

    public void setStage(Integer stage) {
        this.stage = stage;
    }

	public String getContainFlag() {
		return containFlag;
	}

	public void setContainFlag(String containFlag) {
		this.containFlag = containFlag;
	}
}
